<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
// 1. 练习一
// 脑洞大开
// 很久很久以前，有个叫阿隆佐·邱奇的帅哥，发现只需要用函数，就可以用计算机实现运算，而不需要0、1、2、3这些数字和+、-、*、/这些符号。

// JavaScript支持函数，所以可以用JavaScript用函数来写这些计算。来试试：

'use strict';

// // 定义数字0:
// var zero = function (f) {
//     return function (x) {
//         return x;
//     }
// };

// // 定义数字1:
// var one = function (f) {
//     return function (x) {
//         return f(x);
//     }
// };

// // 定义加法:
// function add(n, m) {
//     return function (f) {
//         return function (x) {
//             return m(f)(n(f)(x));
//         }
//     }
// }
// // 计算数字2 = 1 + 1:
// var two = add(one, one);

// // 计算数字3 = 1 + 2:
// var three = add(one, two);

// // 计算数字5 = 2 + 3:
// var five = add(two, three);

// // 你说它是3就是3，你说它是5就是5，你怎么证明？

// // 呵呵，看这里:

// // 给3传一个函数,会打印3次:
// (three(function () {
//     console.log('print 3 times');
// }))();

// // 给5传一个函数,会打印5次:
// (five(function () {
//     console.log('print 5 times');
// }))();

// // 继续接着玩一会...

// 2. 练习二
// 请使用箭头函数简化排序时传入的函数：
var arr = [10, 20, 1, 2];
arr.sort((x, y) => x-y);
console.log(arr); // [1, 2, 10, 20]
    </script>
</body>
</html>